package com.tian.feign;

import com.tian.config.FeignConfig;
import com.tian.dto.QueryUserReqDto;
import com.tian.dto.QueryUserRespDto;
import com.tian.dto.RegisterReqDto;
import com.tian.util.CommonResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;

/**
 * @author tianwc  公众号：java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年05月11日 19:56
 * 博客地址：<a href="http://woaijava.cc/">博客地址</a>
 * <p>
 * 用户信息 feign 客户端
 */
@FeignClient(contextId = "userFeignClient", value = "charge-user-service", fallbackFactory = UserFallBack.class, configuration = FeignConfig.class)
public interface UserFeignClient {
    /**
     * 通过用户手机号查询用户信息
     *
     * @param queryUserReqDto 请求参数
     * @return 用户信息
     */
    @PostMapping("/user/findByPhone")
    CommonResult<QueryUserRespDto> findByPhone(@RequestBody QueryUserReqDto queryUserReqDto);

    /**
     * 用户注册
     *
     * @param registerReqDto 重点是手机号  也可以有openId
     * @return 注册成功
     */
    @PostMapping("/user/register")
    CommonResult<Long> register(RegisterReqDto registerReqDto);

    @GetMapping(value = "/user/test")
    void test(@RequestHeader("x-token") String token, @RequestHeader("x-msgId") String msgId);
}
